package com.tools.Fisco;

import java.math.BigInteger;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.fisco.bcos.sdk.abi.FunctionReturnDecoder;
import org.fisco.bcos.sdk.abi.TypeReference;
import org.fisco.bcos.sdk.abi.datatypes.DynamicStruct;
import org.fisco.bcos.sdk.abi.datatypes.Function;
import org.fisco.bcos.sdk.abi.datatypes.Type;
import org.fisco.bcos.sdk.abi.datatypes.Utf8String;
import org.fisco.bcos.sdk.abi.datatypes.generated.Int256;
import org.fisco.bcos.sdk.abi.datatypes.generated.tuples.generated.Tuple1;
import org.fisco.bcos.sdk.client.Client;
import org.fisco.bcos.sdk.contract.Contract;
import org.fisco.bcos.sdk.crypto.CryptoSuite;
import org.fisco.bcos.sdk.crypto.keypair.CryptoKeyPair;
import org.fisco.bcos.sdk.model.CryptoType;
import org.fisco.bcos.sdk.model.TransactionReceipt;
import org.fisco.bcos.sdk.model.callback.TransactionCallback;
import org.fisco.bcos.sdk.transaction.model.exception.ContractException;

@SuppressWarnings("unchecked")
public class UserInfo extends Contract {
    public static final String[] BINARY_ARRAY = {"60806040526040805190810160405280600e81526020017f55736572496e666f5f7465737431000000000000000000000000000000000000815250600190805190602001906200005192919062000178565b503480156200005f57600080fd5b506110016000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356004b6a60016040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016200011b9190620003d7565b602060405180830381600087803b1580156200013657600080fd5b505af11580156200014b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200017191908101906200023d565b5062000441565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001bb57805160ff1916838001178555620001ec565b82800160010185558215620001ec579182015b82811115620001eb578251825591602001919060010190620001ce565b5b509050620001fb9190620001ff565b5090565b6200022491905b808211156200022057600081600090555060010162000206565b5090565b90565b600062000235825162000437565b905092915050565b6000602082840312156200025057600080fd5b6000620002608482850162000227565b91505092915050565b600081546001811660008114620002895760018114620002aa57620002ef565b607f600283041680865260ff198316602087015260408601935050620002ef565b60028204808652602086019550620002c28562000425565b60005b82811015620002e657815481890152600182019150602081019050620002c5565b80880195505050505b505092915050565b6000607c82527f6163636f756e742c2070617373776f72642c207061795f70617373776f72642c60208301527f2062616c616e63652c206163636f756e745f7374617475732c206163636f756e60408301527f745f726f6c652c206e616d652c20757365726e616d652c2070686f6e652c206360608301527f6172642c2063726561745f646174652c207570646174655f6461746500000000608083015260a082019050919050565b6000600282527f69640000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006060820190508181036000830152620003f3818462000269565b905081810360208301526200040881620003a0565b905081810360408301526200041d81620002f7565b905092915050565b60008160005260206000209050919050565b6000819050919050565b612d6380620004516000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632ac2ac441461007257806354546cbc146100af57806380599e4b146100ec578063e7cca1dc14610129578063fcd7e3c114610154575b600080fd5b34801561007e57600080fd5b50610099600480360361009491908101906120b4565b610191565b6040516100a69190612637565b60405180910390f35b3480156100bb57600080fd5b506100d660048036036100d191908101906120b4565b610ace565b6040516100e39190612637565b60405180910390f35b3480156100f857600080fd5b50610113600480360361010e9190810190612032565b610af4565b6040516101209190612637565b60405180910390f35b34801561013557600080fd5b5061013e610da0565b60405161014b9190612652565b60405180910390f35b34801561016057600080fd5b5061017b60048036036101769190810190612032565b610e3e565b6040516101889190612b67565b60405180910390f35b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c960016040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161020e91906126d4565b602060405180830381600087803b15801561022857600080fd5b505af115801561023c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102609190810190611fe0565b92508273ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156102c657600080fd5b505af11580156102da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102fe9190810190611fb7565b91508173ffffffffffffffffffffffffffffffffffffffff1663e942b51686600001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161035991906129b7565b600060405180830381600087803b15801561037357600080fd5b505af1158015610387573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b51686602001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016103e49190612a96565b600060405180830381600087803b1580156103fe57600080fd5b505af1158015610412573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b51686604001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161046f9190612a41565b600060405180830381600087803b15801561048957600080fd5b505af115801561049d573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b51686606001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016104fa9190612716565b600060405180830381600087803b15801561051457600080fd5b505af1158015610528573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16632ef8ba7486608001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016105859190612aeb565b600060405180830381600087803b15801561059f57600080fd5b505af11580156105b3573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16632ef8ba748660a001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016106109190612b39565b600060405180830381600087803b15801561062a57600080fd5b505af115801561063e573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16632ef8ba748660c001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161069b919061286a565b600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168660e001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161072691906127c0565b600060405180830381600087803b15801561074057600080fd5b505af1158015610754573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661010001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016107b2919061290d565b600060405180830381600087803b1580156107cc57600080fd5b505af11580156107e0573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661012001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161083e9190612962565b600060405180830381600087803b15801561085857600080fd5b505af115801561086c573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661014001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016108ca9190612815565b600060405180830381600087803b1580156108e457600080fd5b505af11580156108f8573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661016001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610956919061276b565b600060405180830381600087803b15801561097057600080fd5b505af1158015610984573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663e942b5168661018001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016109e291906128b8565b600060405180830381600087803b1580156109fc57600080fd5b505af1158015610a10573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166331afac368660000151846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610a6f9291906126a4565b602060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ac19190810190612009565b9050809350505050919050565b600080610ade8360000151610af4565b9050610ae983610191565b905080915050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c960016040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610b7191906126d4565b602060405180830381600087803b158015610b8b57600080fd5b505af1158015610b9f573d6000803e3d6000fd5b505050506040513d601f19601f8201","1682018060405250610bc39190810190611fe0565b92508273ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610c2957600080fd5b505af1158015610c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c619190810190611f65565b91508173ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610cb891906129ec565b600060405180830381600087803b158015610cd257600080fd5b505af1158015610ce6573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166328bb211786846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610d41929190612674565b602060405180830381600087803b158015610d5b57600080fd5b505af1158015610d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d939190810190612009565b9050809350505050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e365780601f10610e0b57610100808354040283529160200191610e36565b820191906000526020600020905b815481529060010190602001808311610e1957829003601f168201915b505050505081565b610e46611b5e565b6000806000610e53611b5e565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c960016040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610ecd91906126d4565b602060405180830381600087803b158015610ee757600080fd5b505af1158015610efb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f1f9190810190611fe0565b95508573ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610f8557600080fd5b505af1158015610f99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fbd9190810190611f65565b94508473ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1896040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161101491906129ec565b600060405180830381600087803b15801561102e57600080fd5b505af1158015611042573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff1663e8434e3989876040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161109d929190612674565b602060405180830381600087803b1580156110b757600080fd5b505af11580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110ef9190810190611f8e565b9350600091505b8373ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561115a57600080fd5b505af115801561116e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111929190810190612009565b821215611b50578373ffffffffffffffffffffffffffffffffffffffff1663846719e0836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016111ee9190612637565b602060405180830381600087803b15801561120857600080fd5b505af115801561121c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112409190810190611fb7565b90508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161129590612997565b600060405180830381600087803b1580156112af57600080fd5b505af11580156112c3573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506112ec9190810190612073565b83600001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161134790612a76565b600060405180830381600087803b15801561136157600080fd5b505af1158015611375573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525061139e9190810190612073565b83602001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016113f990612a21565b600060405180830381600087803b15801561141357600080fd5b505af1158015611427573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506114509190810190612073565b83604001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016114ab906126f6565b600060405180830381600087803b1580156114c557600080fd5b505af11580156114d9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506115029190810190612073565b83606001819052508073ffffffffffffffffffffffffffffffffffffffff1663fda69fae6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161155d90612acb565b602060405180830381600087803b15801561157757600080fd5b505af115801561158b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115af9190810190612009565b8360800181815250508073ffffffffffffffffffffffffffffffffffffffff1663fda69fae6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161160b90612b19565b602060405180830381600087803b15801561162557600080fd5b505af1158015611639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061165d9190810190612009565b8360a00181815250508073ffffffffffffffffffffffffffffffffffffffff1663fda69fae6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016116b99061284a565b602060405180830381600087803b1580156116d357600080fd5b505af11580156116e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061170b9190810190612009565b8360c00181815250508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611767906127a0565b600060405180830381600087803b15801561178157600080fd5b505af1158015611795573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506117be9190810190612073565b8360e001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611819906128ed565b600060405180830381600087803b15801561183357600080fd5b505af1158015611847573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506118709190810190612073565b8361010001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016118cc90612942565b600060405180830381600087803b1580156118e657600080fd5b505af11580156118fa573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506119239190810190612073565b8361012001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161197f906127f5565b600060405180830381600087803b15801561199957600080fd5b505af11580156119ad573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506119d69190810190612073565b8361014001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611a329061274b565b600060405180830381600087803b158015611a4c57600080fd5b505af1158015611a60573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611a899190810190612073565b8361016001819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611ae590612898565b600060405180830381600087803b158015611aff57600080fd5b505af1158015611b13573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250611b3c9190810190612073565b8361018001819052508160010191506110f6565b829650505050505050919050565b6101a06040519081016040528060608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001606081526020016060815260200160608152","6020016060815260200160608152602001606081525090565b6000611bd38251612c60565b905092915050565b6000611be78251612c72565b905092915050565b6000611bfb8251612c84565b905092915050565b6000611c0f8251612c96565b905092915050565b6000611c238235612ca8565b905092915050565b6000611c378251612ca8565b905092915050565b600082601f8301121515611c5257600080fd5b8135611c65611c6082612bb6565b612b89565b91508082526020830160208301858383011115611c8157600080fd5b611c8c838284612cd6565b50505092915050565b600082601f8301121515611ca857600080fd5b8135611cbb611cb682612be2565b612b89565b91508082526020830160208301858383011115611cd757600080fd5b611ce2838284612cd6565b50505092915050565b600082601f8301121515611cfe57600080fd5b8151611d11611d0c82612be2565b612b89565b91508082526020830160208301858383011115611d2d57600080fd5b611d38838284612ce5565b50505092915050565b60006101a08284031215611d5457600080fd5b611d5f6101a0612b89565b9050600082013567ffffffffffffffff811115611d7b57600080fd5b611d8784828501611c3f565b600083015250602082013567ffffffffffffffff811115611da757600080fd5b611db384828501611c3f565b602083015250604082013567ffffffffffffffff811115611dd357600080fd5b611ddf84828501611c3f565b604083015250606082013567ffffffffffffffff811115611dff57600080fd5b611e0b84828501611c3f565b6060830152506080611e1f84828501611c17565b60808301525060a0611e3384828501611c17565b60a08301525060c0611e4784828501611c17565b60c08301525060e082013567ffffffffffffffff811115611e6757600080fd5b611e7384828501611c3f565b60e08301525061010082013567ffffffffffffffff811115611e9457600080fd5b611ea084828501611c3f565b6101008301525061012082013567ffffffffffffffff811115611ec257600080fd5b611ece84828501611c3f565b6101208301525061014082013567ffffffffffffffff811115611ef057600080fd5b611efc84828501611c3f565b6101408301525061016082013567ffffffffffffffff811115611f1e57600080fd5b611f2a84828501611c3f565b6101608301525061018082013567ffffffffffffffff811115611f4c57600080fd5b611f5884828501611c3f565b6101808301525092915050565b600060208284031215611f7757600080fd5b6000611f8584828501611bc7565b91505092915050565b600060208284031215611fa057600080fd5b6000611fae84828501611bdb565b91505092915050565b600060208284031215611fc957600080fd5b6000611fd784828501611bef565b91505092915050565b600060208284031215611ff257600080fd5b600061200084828501611c03565b91505092915050565b60006020828403121561201b57600080fd5b600061202984828501611c2b565b91505092915050565b60006020828403121561204457600080fd5b600082013567ffffffffffffffff81111561205e57600080fd5b61206a84828501611c95565b91505092915050565b60006020828403121561208557600080fd5b600082015167ffffffffffffffff81111561209f57600080fd5b6120ab84828501611ceb565b91505092915050565b6000602082840312156120c657600080fd5b600082013567ffffffffffffffff8111156120e057600080fd5b6120ec84828501611d41565b91505092915050565b6120fe81612cb2565b82525050565b61210d81612cc4565b82525050565b61211c81612c56565b82525050565b600061212d82612c2b565b808452612141816020860160208601612ce5565b61214a81612d18565b602085010191505092915050565b600061216382612c20565b808452612177816020860160208601612ce5565b61218081612d18565b602085010191505092915050565b6000815460018116600081146121ab57600181146121cb5761220c565b607f600283041680865260ff19831660208701526040860193505061220c565b600282048086526020860195506121e185612c0e565b60005b82811015612203578154818901526001820191506020810190506121e4565b80880195505050505b505092915050565b6000600c82527f7061795f70617373776f726400000000000000000000000000000000000000006020830152604082019050919050565b6000600a82527f63726561745f64617465000000000000000000000000000000000000000000006020830152604082019050919050565b6000600482527f6e616d65000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600482527f63617264000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600c82527f6163636f756e745f726f6c6500000000000000000000000000000000000000006020830152604082019050919050565b6000600b82527f7570646174655f646174650000000000000000000000000000000000000000006020830152604082019050919050565b6000600882527f757365726e616d650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600582527f70686f6e650000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600282527f69640000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600882527f70617373776f72640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600782527f6163636f756e74000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600782527f62616c616e6365000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600e82527f6163636f756e745f7374617475730000000000000000000000000000000000006020830152604082019050919050565b60006101a08301600083015184820360008601526124fd8282612158565b915050602083015184820360208601526125178282612158565b915050604083015184820360408601526125318282612158565b9150506060830151848203606086015261254b8282612158565b91505060808301516125606080860182612113565b5060a083015161257360a0860182612113565b5060c083015161258660c0860182612113565b5060e083015184820360e086015261259e8282612158565b9150506101008301518482036101008601526125ba8282612158565b9150506101208301518482036101208601526125d68282612158565b9150506101408301518482036101408601526125f28282612158565b91505061016083015184820361016086015261260e8282612158565b91505061018083015184820361018086015261262a8282612158565b9150508091505092915050565b600060208201905061264c6000830184612113565b92915050565b6000602082019050818103600083015261266c8184612158565b905092915050565b6000604082019050818103600083015261268e8185612122565b905061269d60208301846120f5565b9392505050565b600060408201905081810360008301526126be8185612158565b90506126cd6020830184612104565b9392505050565b600060208201905081810360008301526126ee818461218e565b905092915050565b6000602082019050818103600083015261270f81612214565b9050919050565b6000604082019050818103600083015261272f81612214565b905081810360208301526127438184612158565b905092915050565b600060208201905081810360008301526127648161224b565b9050919050565b600060408201905081810360008301526127848161224b565b905081810360208301526127988184612158565b905092915050565b600060208201905081810360008301526127b981612282565b9050919050565b600060408201905081810360008301526127d981612282565b905081810360208301526127ed8184612158565b905092915050565b6000602082019050818103600083015261280e816122b9565b9050919050565b6000604082019050818103600083015261282e816122b9565b905081810360208301526128428184612158565b905092915050565b60006020820190508181036000830152612863816122f0565b9050919050565b60006040820190508181036000830152612883816122f0565b90506128926020830184612113565b92915050565b600060208201905081810360008301526128b181612327565b9050919050565b600060408201905081810360008301526128d181612327565b905081810360208301526128e58184612158565b905092915050565b600060208201905081810360008301526129068161235e565b9050919050565b600060408201905081810360008301526129268161235e565b9050818103602083015261293a8184612158565b905092915050565b6000602082019050818103600083015261295b81612395565b9050919050565b6000604082019050818103600083015261297b81612395565b9050818103602083015261298f8184612158565b905092915050565b600060208201905081810360008301526129b0816123cc565b9050919050565b600060408201905081810360008301526129d0816123cc565b905081810360208301526129e48184612158565b905092915050565b60006040820190508181036000830152612a05816123cc565b90508181036020830152612a198184612122565b905092915050565b60006020820190508181036000830152612a3a81612403565b9050919050565b60006040820190508181036000830152612a5a81612403565b90508181036020830152612a6e8184612158565b905092915050565b60006020820190508181036000830152612a8f8161243a565b9050919050565b60006040820190508181036000830152612aaf8161243a565b90508181036020830152612ac38184612158565b905092915050565b60006020820190508181036000830152612ae481612471565b9050919050565b60006040820190508181036000830152612b0481612471565b9050612b136020830184612113565b92915050565b60006020820190508181036000830152612b32816124a8565b9050919050565b60006040820190508181036000830152612b52816124a8565b9050612b616020830184612113565b92915050565b60006020820190508181036000830152612b8181846124df565b905092915050565b6000604051905081810181811067ffffffffffffffff82111715612bac57600080fd5b8060","405250919050565b600067ffffffffffffffff821115612bcd57600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115612bf957600080fd5b601f19601f8301169050602081019050919050565b60008160005260206000209050919050565b600081519050919050565b600081519050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612c6b82612c36565b9050919050565b6000612c7d82612c36565b9050919050565b6000612c8f82612c36565b9050919050565b6000612ca182612c36565b9050919050565b6000819050919050565b6000612cbd82612c36565b9050919050565b6000612ccf82612c36565b9050919050565b82818337600083830152505050565b60005b83811015612d03578082015181840152602081019050612ce8565b83811115612d12576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a72305820e095c718c872cdf91dc43a7e5a06dabf892fb0bab1c491fab0cc5ae73dc8f7d46c6578706572696d656e74616cf50037"};

    public static final String BINARY = org.fisco.bcos.sdk.utils.StringUtils.joinAll("", BINARY_ARRAY);

    public static final String[] SM_BINARY_ARRAY = {"60806040526040805190810160405280600e81526020017f55736572496e666f5f7465737431000000000000000000000000000000000000815250600190805190602001906200005192919062000178565b503480156200005f57600080fd5b506110016000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c92a780160016040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016200011b9190620003d7565b602060405180830381600087803b1580156200013657600080fd5b505af11580156200014b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200017191908101906200023d565b5062000441565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001bb57805160ff1916838001178555620001ec565b82800160010185558215620001ec579182015b82811115620001eb578251825591602001919060010190620001ce565b5b509050620001fb9190620001ff565b5090565b6200022491905b808211156200022057600081600090555060010162000206565b5090565b90565b600062000235825162000437565b905092915050565b6000602082840312156200025057600080fd5b6000620002608482850162000227565b91505092915050565b600081546001811660008114620002895760018114620002aa57620002ef565b607f600283041680865260ff198316602087015260408601935050620002ef565b60028204808652602086019550620002c28562000425565b60005b82811015620002e657815481890152600182019150602081019050620002c5565b80880195505050505b505092915050565b6000607c82527f6163636f756e742c2070617373776f72642c207061795f70617373776f72642c60208301527f2062616c616e63652c206163636f756e745f7374617475732c206163636f756e60408301527f745f726f6c652c206e616d652c20757365726e616d652c2070686f6e652c206360608301527f6172642c2063726561745f646174652c207570646174655f6461746500000000608083015260a082019050919050565b6000600282527f69640000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006060820190508181036000830152620003f3818462000269565b905081810360208301526200040881620003a0565b905081810360408301526200041d81620002f7565b905092915050565b60008160005260206000209050919050565b6000819050919050565b612d6380620004516000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806329f16fc2146100725780635b325d78146100af57806375c3ba54146100ec57806386b733f914610129578063c01da03014610166575b600080fd5b34801561007e57600080fd5b50610099600480360361009491908101906120b4565b610191565b6040516100a69190612637565b60405180910390f35b3480156100bb57600080fd5b506100d660048036036100d19190810190612032565b6101b7565b6040516100e39190612b67565b60405180910390f35b3480156100f857600080fd5b50610113600480360361010e91908101906120b4565b610ed7565b6040516101209190612637565b60405180910390f35b34801561013557600080fd5b50610150600480360361014b9190810190612032565b611814565b60405161015d9190612637565b60405180910390f35b34801561017257600080fd5b5061017b611ac0565b6040516101889190612652565b60405180910390f35b6000806101a18360000151611814565b90506101ac83610ed7565b905080915050919050565b6101bf611b5e565b60008060006101cc611b5e565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359a48b6560016040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161024691906126d4565b602060405180830381600087803b15801561026057600080fd5b505af1158015610274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102989190810190611fe0565b95508573ffffffffffffffffffffffffffffffffffffffff1663c74f8caf6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156102fe57600080fd5b505af1158015610312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103369190810190611f65565b94508473ffffffffffffffffffffffffffffffffffffffff1663ae763db5896040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161038d9190612990565b600060405180830381600087803b1580156103a757600080fd5b505af11580156103bb573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff1663d8ac595789876040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610416929190612674565b602060405180830381600087803b15801561043057600080fd5b505af1158015610444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104689190810190611f8e565b9350600091505b8373ffffffffffffffffffffffffffffffffffffffff1663d3e9af5a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156104d357600080fd5b505af11580156104e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061050b9190810190612009565b821215610ec9578373ffffffffffffffffffffffffffffffffffffffff16633dd2b614836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016105679190612637565b602060405180830381600087803b15801561058157600080fd5b505af1158015610595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105b99190810190611fb7565b90508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161060e9061293b565b600060405180830381600087803b15801561062857600080fd5b505af115801561063c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506106659190810190612073565b83600001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016106c090612891565b600060405180830381600087803b1580156106da57600080fd5b505af11580156106ee573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506107179190810190612073565b83602001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016107729061274b565b600060405180830381600087803b15801561078c57600080fd5b505af11580156107a0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506107c99190810190612073565b83604001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161082490612a68565b600060405180830381600087803b15801561083e57600080fd5b505af1158015610852573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525061087b9190810190612073565b83606001819052508073ffffffffffffffffffffffffffffffffffffffff16634900862e6040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016108d6906127ee565b602060405180830381600087803b1580156108f057600080fd5b505af1158015610904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109289190810190612009565b8360800181815250508073ffffffffffffffffffffffffffffffffffffffff16634900862e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610984906127a0565b602060405180830381600087803b15801561099e57600080fd5b505af11580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109d69190810190612009565b8360a00181815250508073ffffffffffffffffffffffffffffffffffffffff16634900862e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610a32906129c5565b602060405180830381600087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a849190810190612009565b8360c00181815250508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610ae090612abd565b600060405180830381600087803b158015610afa57600080fd5b505af1158015610b0e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610b379190810190612073565b8360e001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610b9290612a13565b600060405180830381600087803b158015610bac57600080fd5b505a","f1158015610bc0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610be99190810190612073565b8361010001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610c459061283c565b600060405180830381600087803b158015610c5f57600080fd5b505af1158015610c73573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610c9c9190810190612073565b8361012001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610cf890612b12565b600060405180830381600087803b158015610d1257600080fd5b505af1158015610d26573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610d4f9190810190612073565b8361014001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610dab906126f6565b600060405180830381600087803b158015610dc557600080fd5b505af1158015610dd9573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610e029190810190612073565b8361016001819052508073ffffffffffffffffffffffffffffffffffffffff16639bca41e86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610e5e906128e6565b600060405180830381600087803b158015610e7857600080fd5b505af1158015610e8c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250610eb59190810190612073565b83610180018190525081600101915061046f565b829650505050505050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359a48b6560016040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610f5491906126d4565b602060405180830381600087803b158015610f6e57600080fd5b505af1158015610f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fa69190810190611fe0565b92508273ffffffffffffffffffffffffffffffffffffffff16635887ab246040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561100c57600080fd5b505af1158015611020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110449190810190611fb7565b91508173ffffffffffffffffffffffffffffffffffffffff16631a391cb486600001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161109f919061295b565b600060405180830381600087803b1580156110b957600080fd5b505af11580156110cd573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb486602001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161112a91906128b1565b600060405180830381600087803b15801561114457600080fd5b505af1158015611158573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb486604001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016111b5919061276b565b600060405180830381600087803b1580156111cf57600080fd5b505af11580156111e3573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb486606001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016112409190612a88565b600060405180830381600087803b15801561125a57600080fd5b505af115801561126e573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663def4269886608001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016112cb919061280e565b600060405180830381600087803b1580156112e557600080fd5b505af11580156112f9573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663def426988660a001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161135691906127c0565b600060405180830381600087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663def426988660c001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016113e191906129e5565b600060405180830381600087803b1580156113fb57600080fd5b505af115801561140f573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48660e001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161146c9190612add565b600060405180830381600087803b15801561148657600080fd5b505af115801561149a573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661010001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016114f89190612a33565b600060405180830381600087803b15801561151257600080fd5b505af1158015611526573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661012001516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611584919061285c565b600060405180830381600087803b15801561159e57600080fd5b505af11580156115b2573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661014001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016116109190612b32565b600060405180830381600087803b15801561162a57600080fd5b505af115801561163e573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661016001516040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161169c9190612716565b600060405180830381600087803b1580156116b657600080fd5b505af11580156116ca573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff16631a391cb48661018001516040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016117289190612906565b600060405180830381600087803b15801561174257600080fd5b505af1158015611756573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff16634c6f30c08660000151846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016117b59291906126a4565b602060405180830381600087803b1580156117cf57600080fd5b505af11580156117e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118079190810190612009565b9050809350505050919050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359a48b6560016040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040161189191906126d4565b602060405180830381600087803b1580156118ab57600080fd5b505af11580156118bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118e39190810190611fe0565b92508273ffffffffffffffffffffffffffffffffffffffff1663c74f8caf6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561194957600080fd5b505af115801561195d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119819190810190611f65565b91508173ffffffffffffffffffffffffffffffffffffffff1663ae763db5866040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016119d89190612990565b600060405180830381600087803b1580156119f257600080fd5b505af1158015611a06573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166309ff42f086846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401611a61929190612674565b602060405180830381600087803b158015611a7b57600080fd5b505af1158015611a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ab39190810190612009565b9050809350505050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b565780601f10611b2b57610100808354040283529160200191611b56565b820191906000526020600020905b815481529060010190602001808311611b3957829003601f168201915b505050505081565b6101a06040519081016040528060608152602001606081526020016060815260200160608152602001600081526020016000815260200160008152602001606081526020016060815260200160608152","6020016060815260200160608152602001606081525090565b6000611bd38251612c60565b905092915050565b6000611be78251612c72565b905092915050565b6000611bfb8251612c84565b905092915050565b6000611c0f8251612c96565b905092915050565b6000611c238235612ca8565b905092915050565b6000611c378251612ca8565b905092915050565b600082601f8301121515611c5257600080fd5b8135611c65611c6082612bb6565b612b89565b91508082526020830160208301858383011115611c8157600080fd5b611c8c838284612cd6565b50505092915050565b600082601f8301121515611ca857600080fd5b8135611cbb611cb682612be2565b612b89565b91508082526020830160208301858383011115611cd757600080fd5b611ce2838284612cd6565b50505092915050565b600082601f8301121515611cfe57600080fd5b8151611d11611d0c82612be2565b612b89565b91508082526020830160208301858383011115611d2d57600080fd5b611d38838284612ce5565b50505092915050565b60006101a08284031215611d5457600080fd5b611d5f6101a0612b89565b9050600082013567ffffffffffffffff811115611d7b57600080fd5b611d8784828501611c3f565b600083015250602082013567ffffffffffffffff811115611da757600080fd5b611db384828501611c3f565b602083015250604082013567ffffffffffffffff811115611dd357600080fd5b611ddf84828501611c3f565b604083015250606082013567ffffffffffffffff811115611dff57600080fd5b611e0b84828501611c3f565b6060830152506080611e1f84828501611c17565b60808301525060a0611e3384828501611c17565b60a08301525060c0611e4784828501611c17565b60c08301525060e082013567ffffffffffffffff811115611e6757600080fd5b611e7384828501611c3f565b60e08301525061010082013567ffffffffffffffff811115611e9457600080fd5b611ea084828501611c3f565b6101008301525061012082013567ffffffffffffffff811115611ec257600080fd5b611ece84828501611c3f565b6101208301525061014082013567ffffffffffffffff811115611ef057600080fd5b611efc84828501611c3f565b6101408301525061016082013567ffffffffffffffff811115611f1e57600080fd5b611f2a84828501611c3f565b6101608301525061018082013567ffffffffffffffff811115611f4c57600080fd5b611f5884828501611c3f565b6101808301525092915050565b600060208284031215611f7757600080fd5b6000611f8584828501611bc7565b91505092915050565b600060208284031215611fa057600080fd5b6000611fae84828501611bdb565b91505092915050565b600060208284031215611fc957600080fd5b6000611fd784828501611bef565b91505092915050565b600060208284031215611ff257600080fd5b600061200084828501611c03565b91505092915050565b60006020828403121561201b57600080fd5b600061202984828501611c2b565b91505092915050565b60006020828403121561204457600080fd5b600082013567ffffffffffffffff81111561205e57600080fd5b61206a84828501611c95565b91505092915050565b60006020828403121561208557600080fd5b600082015167ffffffffffffffff81111561209f57600080fd5b6120ab84828501611ceb565b91505092915050565b6000602082840312156120c657600080fd5b600082013567ffffffffffffffff8111156120e057600080fd5b6120ec84828501611d41565b91505092915050565b6120fe81612cb2565b82525050565b61210d81612cc4565b82525050565b61211c81612c56565b82525050565b600061212d82612c2b565b808452612141816020860160208601612ce5565b61214a81612d18565b602085010191505092915050565b600061216382612c20565b808452612177816020860160208601612ce5565b61218081612d18565b602085010191505092915050565b6000815460018116600081146121ab57600181146121cb5761220c565b607f600283041680865260ff19831660208701526040860193505061220c565b600282048086526020860195506121e185612c0e565b60005b82811015612203578154818901526001820191506020810190506121e4565b80880195505050505b505092915050565b6000600a82527f63726561745f64617465000000000000000000000000000000000000000000006020830152604082019050919050565b6000600882527f70617373776f72640000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600e82527f6163636f756e745f7374617475730000000000000000000000000000000000006020830152604082019050919050565b6000600782527f62616c616e6365000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600582527f70686f6e650000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600782527f6163636f756e74000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600b82527f7570646174655f646174650000000000000000000000000000000000000000006020830152604082019050919050565b6000600282527f69640000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600c82527f6163636f756e745f726f6c6500000000000000000000000000000000000000006020830152604082019050919050565b6000600882527f757365726e616d650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600c82527f7061795f70617373776f726400000000000000000000000000000000000000006020830152604082019050919050565b6000600482527f6e616d65000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000600482527f63617264000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006101a08301600083015184820360008601526124fd8282612158565b915050602083015184820360208601526125178282612158565b915050604083015184820360408601526125318282612158565b9150506060830151848203606086015261254b8282612158565b91505060808301516125606080860182612113565b5060a083015161257360a0860182612113565b5060c083015161258660c0860182612113565b5060e083015184820360e086015261259e8282612158565b9150506101008301518482036101008601526125ba8282612158565b9150506101208301518482036101208601526125d68282612158565b9150506101408301518482036101408601526125f28282612158565b91505061016083015184820361016086015261260e8282612158565b91505061018083015184820361018086015261262a8282612158565b9150508091505092915050565b600060208201905061264c6000830184612113565b92915050565b6000602082019050818103600083015261266c8184612158565b905092915050565b6000604082019050818103600083015261268e8185612122565b905061269d60208301846120f5565b9392505050565b600060408201905081810360008301526126be8185612158565b90506126cd6020830184612104565b9392505050565b600060208201905081810360008301526126ee818461218e565b905092915050565b6000602082019050818103600083015261270f81612214565b9050919050565b6000604082019050818103600083015261272f81612214565b905081810360208301526127438184612158565b905092915050565b600060208201905081810360008301526127648161224b565b9050919050565b600060408201905081810360008301526127848161224b565b905081810360208301526127988184612158565b905092915050565b600060208201905081810360008301526127b981612282565b9050919050565b600060408201905081810360008301526127d981612282565b90506127e86020830184612113565b92915050565b60006020820190508181036000830152612807816122b9565b9050919050565b60006040820190508181036000830152612827816122b9565b90506128366020830184612113565b92915050565b60006020820190508181036000830152612855816122f0565b9050919050565b60006040820190508181036000830152612875816122f0565b905081810360208301526128898184612158565b905092915050565b600060208201905081810360008301526128aa81612327565b9050919050565b600060408201905081810360008301526128ca81612327565b905081810360208301526128de8184612158565b905092915050565b600060208201905081810360008301526128ff8161235e565b9050919050565b6000604082019050818103600083015261291f8161235e565b905081810360208301526129338184612158565b905092915050565b6000602082019050818103600083015261295481612395565b9050919050565b6000604082019050818103600083015261297481612395565b905081810360208301526129888184612158565b905092915050565b600060408201905081810360008301526129a981612395565b905081810360208301526129bd8184612122565b905092915050565b600060208201905081810360008301526129de816123cc565b9050919050565b600060408201905081810360008301526129fe816123cc565b9050612a0d6020830184612113565b92915050565b60006020820190508181036000830152612a2c81612403565b9050919050565b60006040820190508181036000830152612a4c81612403565b90508181036020830152612a608184612158565b905092915050565b60006020820190508181036000830152612a818161243a565b9050919050565b60006040820190508181036000830152612aa18161243a565b90508181036020830152612ab58184612158565b905092915050565b60006020820190508181036000830152612ad681612471565b9050919050565b60006040820190508181036000830152612af681612471565b90508181036020830152612b0a8184612158565b905092915050565b60006020820190508181036000830152612b2b816124a8565b9050919050565b60006040820190508181036000830152612b4b816124a8565b90508181036020830152612b5f8184612158565b905092915050565b60006020820190508181036000830152612b8181846124df565b905092915050565b6000604051905081810181811067ffffffffffffffff82111715612bac57600080fd5b8060","405250919050565b600067ffffffffffffffff821115612bcd57600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115612bf957600080fd5b601f19601f8301169050602081019050919050565b60008160005260206000209050919050565b600081519050919050565b600081519050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612c6b82612c36565b9050919050565b6000612c7d82612c36565b9050919050565b6000612c8f82612c36565b9050919050565b6000612ca182612c36565b9050919050565b6000819050919050565b6000612cbd82612c36565b9050919050565b6000612ccf82612c36565b9050919050565b82818337600083830152505050565b60005b83811015612d03578082015181840152602081019050612ce8565b83811115612d12576000848401525b50505050565b6000601f19601f83011690509190505600a265627a7a7230582041910c24b3c4f3a035607d33043e4dfe7fb03b842f21da85302d0d02c61177116c6578706572696d656e74616cf50037"};

    public static final String SM_BINARY = org.fisco.bcos.sdk.utils.StringUtils.joinAll("", SM_BINARY_ARRAY);

    public static final String[] ABI_ARRAY = {"[{\"constant\":false,\"inputs\":[{\"components\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"account\",\"type\":\"string\"},{\"name\":\"password\",\"type\":\"string\"},{\"name\":\"pay_password\",\"type\":\"string\"},{\"name\":\"balance\",\"type\":\"int256\"},{\"name\":\"account_status\",\"type\":\"int256\"},{\"name\":\"account_role\",\"type\":\"int256\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"username\",\"type\":\"string\"},{\"name\":\"phone\",\"type\":\"string\"},{\"name\":\"card\",\"type\":\"string\"},{\"name\":\"create_date\",\"type\":\"string\"},{\"name\":\"update_date\",\"type\":\"string\"}],\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"insert\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"account\",\"type\":\"string\"},{\"name\":\"password\",\"type\":\"string\"},{\"name\":\"pay_password\",\"type\":\"string\"},{\"name\":\"balance\",\"type\":\"int256\"},{\"name\":\"account_status\",\"type\":\"int256\"},{\"name\":\"account_role\",\"type\":\"int256\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"username\",\"type\":\"string\"},{\"name\":\"phone\",\"type\":\"string\"},{\"name\":\"card\",\"type\":\"string\"},{\"name\":\"create_date\",\"type\":\"string\"},{\"name\":\"update_date\",\"type\":\"string\"}],\"name\":\"user\",\"type\":\"tuple\"}],\"name\":\"update\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"id\",\"type\":\"string\"}],\"name\":\"remove\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"User_Info\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"id\",\"type\":\"string\"}],\"name\":\"select\",\"outputs\":[{\"components\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"account\",\"type\":\"string\"},{\"name\":\"password\",\"type\":\"string\"},{\"name\":\"pay_password\",\"type\":\"string\"},{\"name\":\"balance\",\"type\":\"int256\"},{\"name\":\"account_status\",\"type\":\"int256\"},{\"name\":\"account_role\",\"type\":\"int256\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"username\",\"type\":\"string\"},{\"name\":\"phone\",\"type\":\"string\"},{\"name\":\"card\",\"type\":\"string\"},{\"name\":\"create_date\",\"type\":\"string\"},{\"name\":\"update_date\",\"type\":\"string\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]"};

    public static final String ABI = org.fisco.bcos.sdk.utils.StringUtils.joinAll("", ABI_ARRAY);

    public static final String FUNC_INSERT = "insert";

    public static final String FUNC_UPDATE = "update";

    public static final String FUNC_REMOVE = "remove";

    public static final String FUNC_USER_INFO = "User_Info";

    public static final String FUNC_SELECT = "select";

    protected UserInfo(String contractAddress, Client client, CryptoKeyPair credential) {
        super(getBinary(client.getCryptoSuite()), contractAddress, client, credential);
    }

    public static String getBinary(CryptoSuite cryptoSuite) {
        return (cryptoSuite.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY);
    }

    public TransactionReceipt insert(Struct0 user) {
        final Function function = new Function(
                FUNC_INSERT, 
                Arrays.<Type>asList(user), 
                Collections.<TypeReference<?>>emptyList());
        return executeTransaction(function);
    }

    public byte[] insert(Struct0 user, TransactionCallback callback) {
        final Function function = new Function(
                FUNC_INSERT, 
                Arrays.<Type>asList(user), 
                Collections.<TypeReference<?>>emptyList());
        return asyncExecuteTransaction(function, callback);
    }

    public String getSignedTransactionForInsert(Struct0 user) {
        final Function function = new Function(
                FUNC_INSERT, 
                Arrays.<Type>asList(user), 
                Collections.<TypeReference<?>>emptyList());
        return createSignedTransaction(function);
    }

    public Tuple1<Struct0> getInsertInput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getInput().substring(10);
        final Function function = new Function(FUNC_INSERT, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Struct0>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<Struct0>(

                (Struct0) results.get(0)
                );
    }

    public Tuple1<BigInteger> getInsertOutput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getOutput();
        final Function function = new Function(FUNC_INSERT, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Int256>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<BigInteger>(

                (BigInteger) results.get(0).getValue()
                );
    }

    public TransactionReceipt update(Struct0 user) {
        final Function function = new Function(
                FUNC_UPDATE, 
                Arrays.<Type>asList(user), 
                Collections.<TypeReference<?>>emptyList());
        return executeTransaction(function);
    }

    public byte[] update(Struct0 user, TransactionCallback callback) {
        final Function function = new Function(
                FUNC_UPDATE, 
                Arrays.<Type>asList(user), 
                Collections.<TypeReference<?>>emptyList());
        return asyncExecuteTransaction(function, callback);
    }

    public String getSignedTransactionForUpdate(Struct0 user) {
        final Function function = new Function(
                FUNC_UPDATE, 
                Arrays.<Type>asList(user), 
                Collections.<TypeReference<?>>emptyList());
        return createSignedTransaction(function);
    }

    public Tuple1<Struct0> getUpdateInput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getInput().substring(10);
        final Function function = new Function(FUNC_UPDATE, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Struct0>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<Struct0>(

                (Struct0) results.get(0)
                );
    }

    public Tuple1<BigInteger> getUpdateOutput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getOutput();
        final Function function = new Function(FUNC_UPDATE, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Int256>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<BigInteger>(

                (BigInteger) results.get(0).getValue()
                );
    }

    public TransactionReceipt remove(String id) {
        final Function function = new Function(
                FUNC_REMOVE, 
                Arrays.<Type>asList(new org.fisco.bcos.sdk.abi.datatypes.Utf8String(id)), 
                Collections.<TypeReference<?>>emptyList());
        return executeTransaction(function);
    }

    public byte[] remove(String id, TransactionCallback callback) {
        final Function function = new Function(
                FUNC_REMOVE, 
                Arrays.<Type>asList(new org.fisco.bcos.sdk.abi.datatypes.Utf8String(id)), 
                Collections.<TypeReference<?>>emptyList());
        return asyncExecuteTransaction(function, callback);
    }

    public String getSignedTransactionForRemove(String id) {
        final Function function = new Function(
                FUNC_REMOVE, 
                Arrays.<Type>asList(new org.fisco.bcos.sdk.abi.datatypes.Utf8String(id)), 
                Collections.<TypeReference<?>>emptyList());
        return createSignedTransaction(function);
    }

    public Tuple1<String> getRemoveInput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getInput().substring(10);
        final Function function = new Function(FUNC_REMOVE, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<String>(

                (String) results.get(0).getValue()
                );
    }

    public Tuple1<BigInteger> getRemoveOutput(TransactionReceipt transactionReceipt) {
        String data = transactionReceipt.getOutput();
        final Function function = new Function(FUNC_REMOVE, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Int256>() {}));
        List<Type> results = FunctionReturnDecoder.decode(data, function.getOutputParameters());
        return new Tuple1<BigInteger>(

                (BigInteger) results.get(0).getValue()
                );
    }

    public String User_Info() throws ContractException {
        final Function function = new Function(FUNC_USER_INFO, 
                Arrays.<Type>asList(), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {}));
        return executeCallWithSingleValueReturn(function, String.class);
    }

    public Struct0 select(String id) throws ContractException {
        final Function function = new Function(FUNC_SELECT, 
                Arrays.<Type>asList(new org.fisco.bcos.sdk.abi.datatypes.Utf8String(id)), 
                Arrays.<TypeReference<?>>asList(new TypeReference<Struct0>() {}));
        return executeCallWithSingleValueReturn(function, Struct0.class);
    }

    public static UserInfo load(String contractAddress, Client client, CryptoKeyPair credential) {
        return new UserInfo(contractAddress, client, credential);
    }

    public static UserInfo deploy(Client client, CryptoKeyPair credential) throws ContractException {
        return deploy(UserInfo.class, client, credential, getBinary(client.getCryptoSuite()), "");
    }

    public static class Struct0 extends DynamicStruct {
        public String id;

        public String account;

        public String password;

        public String pay_password;

        public BigInteger balance;

        public BigInteger account_status;

        public BigInteger account_role;

        public String name;

        public String username;

        public String phone;

        public String card;

        public String create_date;

        public String update_date;

        public Struct0(Utf8String id, Utf8String account, Utf8String password, Utf8String pay_password, Int256 balance, Int256 account_status, Int256 account_role, Utf8String name, Utf8String username, Utf8String phone, Utf8String card, Utf8String create_date, Utf8String update_date) {
            super(id,account,password,pay_password,balance,account_status,account_role,name,username,phone,card,create_date,update_date);
            this.id = id.getValue();
            this.account = account.getValue();
            this.password = password.getValue();
            this.pay_password = pay_password.getValue();
            this.balance = balance.getValue();
            this.account_status = account_status.getValue();
            this.account_role = account_role.getValue();
            this.name = name.getValue();
            this.username = username.getValue();
            this.phone = phone.getValue();
            this.card = card.getValue();
            this.create_date = create_date.getValue();
            this.update_date = update_date.getValue();
        }

        public Struct0(String id, String account, String password, String pay_password, BigInteger balance, BigInteger account_status, BigInteger account_role, String name, String username, String phone, String card, String create_date, String update_date) {
            super(new org.fisco.bcos.sdk.abi.datatypes.Utf8String(id),new org.fisco.bcos.sdk.abi.datatypes.Utf8String(account),new org.fisco.bcos.sdk.abi.datatypes.Utf8String(password),new org.fisco.bcos.sdk.abi.datatypes.Utf8String(pay_password),new org.fisco.bcos.sdk.abi.datatypes.generated.Int256(balance),new org.fisco.bcos.sdk.abi.datatypes.generated.Int256(account_status),new org.fisco.bcos.sdk.abi.datatypes.generated.Int256(account_role),new org.fisco.bcos.sdk.abi.datatypes.Utf8String(name),new org.fisco.bcos.sdk.abi.datatypes.Utf8String(username),new org.fisco.bcos.sdk.abi.datatypes.Utf8String(phone),new org.fisco.bcos.sdk.abi.datatypes.Utf8String(card),new org.fisco.bcos.sdk.abi.datatypes.Utf8String(create_date),new org.fisco.bcos.sdk.abi.datatypes.Utf8String(update_date));
            this.id = id;
            this.account = account;
            this.password = password;
            this.pay_password = pay_password;
            this.balance = balance;
            this.account_status = account_status;
            this.account_role = account_role;
            this.name = name;
            this.username = username;
            this.phone = phone;
            this.card = card;
            this.create_date = create_date;
            this.update_date = update_date;
        }
    }
}
